The present invention relates to communications networks and in particular to the real-time communication between several users in such networks.
Communication units enabling simultaneous communication between several users are known in the art. For multi-part telephone or video communication a Multi-part Communications Unit (MCU) may be used. Such a unit receives data, for example, voice data, from a number of participants, for example, via their telephones, and forwards to each user the data received from all other users. In this way, all users can hear what everybody else is saying.
With an MCU, therefore, the number of participants is restricted, typically to 6-12 participants for two reasons: A larger number of participants would require a too high bandwidth, since the amount of information to be transmitted would become very large. Also, even if the bandwidth limitations were overcome, the information received by each user would consist of contributions from a large number of other people and would be difficult to interpret.
Multi-user communications applications are currently being developed, for example for multi-user games. For such applications, three main synchronization models are used: client-server synchronization, peer-to-peer synchronization or broadcast synchronization. Some multi-user games on the Internet today involve up to 100 000 players, of which several thousand may be playing at the same time. All synchronization methods used today cause rather long delays. Therefore, the multi-user games played over the Internet today are games in which the speed is not critical. For example, fast action games, such as car racing games or battle games, in which the user must react to what is happening within fractions of a second cannot be played with acceptable quality using this method.
Dial-in networks typically use client-server synchronization. In this case, the central server is an obvious bottleneck in the system. Central client-server games can support 2-250 players. The higher number refers to servers where the update rate is as low as 2 Hz. The server receives data from all players. It has to find out what information each player needs and send it. The central server adds latency both because of the increased transport distance and the processing and scheduling delay in the server. Consider e.g. a situation where the clients are on the U.S. West coast while the server is on the U.S. East coast. About 80 ms of transport latency and at least several 10 ms of processing latency are caused by the client-server mode of operation.
Therefore, client-server synchronization is not feasible for real-time applications with large numbers of players in which the delay is critical.
Peer-to-peer synchronization means that all clients send application data directly to all other clients. This model is frequently used for games that are played over the public Internet. Game developers provide a free application lobby server where player meet for setting up games and for joining ongoing games. Once a game has started it is played in the peer-to-peer mode without drawing any resources from the game developer""s site.
Peer-to-peer synchronization has obvious scaleability problems since the network load is proportional to the square of the number of players; the client access bandwidth and CPU power requirement are proportional to the number of players. The payload in each packet is 10-40 bytes, which means that the protocol overhead usually is more than 50%. Small game packets give a large protocol overhead. With header compression methods, however, this overhead can be reduced significantly.
Peer-to-peer games over the Internet suffer from unpredictable delays and frequently collapse because of loss of synchronization.
It follows that peer-to-peer synchronization is best adapted to small networks, with communication over relatively short distances and between a limited number of users.
Because of the restrictions posed by among other thing the synchronization methods, multi-participant communications with good real-time characteristics is not possible with current technology.
It is an object of the present invention to improve the real-time performance in communications networks, especially for collaborative communication between a large number of participants.
This object is achieved according to the invention by a server unit for use in a communications network, the server unit comprising a device for receiving information from at least a first client unit, the information comprising at least part of the state information about a distributed interactive application, the server unit comprising a device
for storing application state information comprised in the information received through the receiving means from at least one of the first and second client units.
a first device for forwarding the state information received from the at least first client unit to at least one other node in the network and
a second device for transmitting at least part of the information stored in the state information storing means to the at least one client unit.
This enables keeping the whole state of the application in one or more units in the network, which removes the need for each client to store the entire state, thereby reducing the need for memory capacity in each client and also the bandwidth needed for communication with each client. If each part of the state of the application is stored in more than one network node or client, a back-up facility is achieved.
The object is also achieved according to the invention by a client unit for use in a terminal in a communications network, comprising an application software for a distributed interactive application client unit having
at least one input device for reading an input from the terminal, the input constituting at least application state information for the distributed interactive application
a device for transmitting application state information to an application access server
a device for receiving at least application state information for the distributed interactive application from the application access servers and a display for the state information.
The method and apparatus according to the invention are particularly useful for distributed interactive applications, especially involving real-time communication.
Preferably, the receiving devise of the server unit adapted to
receive priority information from at least the first client, the priority information identifying objects of the distributed interactive application about which the first client wishes receive information,
transmit information to the at least one client unit in dependence of the priority information received from that client unit.
the server unit further comprising at least one client priority list for storing the priority information.
Accordingly, the client unit further comprises a device for setting priority information for specifying at least one object of the distributed interactive application from which available information should be received as soon as possible and a device for transmitting the priority information to the application access server.
This reduces the amount of information to be transmitted to each user, thereby reducing the transmission delay and also helping each user analyze the information, since only the most important information for a particular user is shown to that user. Each client is able to decide for itself what is important.
In a preferred embodiment, the receiving device is adapted to receive urgency information relating to the first client from at least a second client. The urgency information may be transmitted to the first client, or application state information regarding the second client may be forwarded to at least the first client in dependence of the urgency information. The urgency information may also be used to indicate that certain application state information should not be forwarded to the first client. The urgency information may be used to change a client priority list.
In a preferred embodiment the client unit further comprises a device for setting urgency data for specifying at least one other client that should receive state information from the client as soon as possible.
Advantageously, the transmission device of the client unit for transmitting application state information is adapted to arrange information in object information packets, each packet relating to one object constituting part of the application, before transmitting the packets to the server unit and the receiving device is adapted to extract information from packets received from the server unit.
The application access server system is independent of the application and can therefore support a wide range of different applications.
Application access server units working together could communicate over a reserved (virtual) network. The aggregated bandwidth requirement of an application can be estimated by the network management system and sufficient network resources can be allocated to the reserved network that is connecting the application access server units. New applications are allowed only if resources are available. The network management also controls the resending and duplication policy of the application access server units. Multicasting and resource reservation protocols can be used on the aggregated streams between the application access server units. The advantage of this system is that resource reservation on the player level is not necessary. Application clients can usually handle occasional lost packets if the overall statistical performance is good. Using the application access server according to the invention means that a game client never will lose synchronization permanently since the application access server units always maintain the game state.